/**
 *Copyright (c) 2024 watereyes
 * workflow is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan
 * PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *          http://license.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package com.koron.workflow.baseConfig.mapper;

import com.koron.workflow.baseConfig.bean.RoleLineBean;
import com.koron.workflow.baseConfig.bean.RoleLineTeamBean;
import com.koron.workflow.baseConfig.bean.RoleLineTeamUserBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author qingfeng
 * @description: TODO
 * @date 2020/4/13 14:08
 */
public interface RoleLineMapper {

    List<RoleLineBean> queryForList(@Param("name") String name, @Param("page") Integer page,
                                    @Param("pageSize") Integer pageSize);

    int countForList(@Param("name") String name);

    int insert(RoleLineBean role);

    int update(RoleLineBean role);

    int delete(@Param("id") String id);

    RoleLineBean queryByCode(@Param("code") String code);

    RoleLineBean queryForObject(@Param("id") String id);

    int insertRoleLineTeam(RoleLineTeamBean bean);

    int deleteRoleLineTeam(@Param("roleLineTeamId") String roleLineTeamId);

    int deleteRoleLineTeamUser(@Param("id") String id);

    int deleteRoleLineTeamUserByTeamId(@Param("roleLineTeamId") String roleLineTeamId);

    int batchInsertRoleLineTeamUser(@Param("list") List<RoleLineTeamUserBean> list);

    List<RoleLineTeamBean> queryRoleLineTeamByRoleId(@Param("roleId") String roleId);

    List<RoleLineTeamUserBean> queryRoleLineTeamUserByTeamId(@Param("teamId") String teamId);

    /**
     * 根据 条件 统计团队个数
     * @param account
     * @param type
     * @param roleLineId
     * @return
     */
    int validRoleLineToTeam(@Param("account") String account, @Param("type") String type, @Param("roleLineId") String roleLineId);
}
